/***
 * 
 * 给你一个非负整数数组 nums ，你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位
 * 置可以跳跃的最大长度。
 * 判断你是否能够到达最后一个下标，如果可以，返回 true ；否则，返回 false 。
 * 1 <= nums.length <= 104
 * 0 <= nums[i] <= 105
 */


class Solution {
public:
    bool canJump(vector<int>& nums) {
        int k = 0,n = nums.size();
        for(int i = 0;i < n;i++){
            if(k < i)return false;
            k = max(k,nums[i] + i);
        }
        return true;
    }
};